#ifndef LEVELBUILDER_H
#define LEVELBUILDER_H

#include <string>
#include <fstream>
#include <sstream>
#include <vector>

#include "../../World.hpp"

#include "../Mesh.hpp"
#include "../Texture.hpp"

#include "ObjectFactory.h"
#include "BehaviourFactory.h"

class LevelBuilder {
    private:
        static LevelBuilder* instance;

        LevelBuilder();
        ~LevelBuilder();
        unsigned int split(const std::string&, std::vector<std::string>&, char);

    public:
        static LevelBuilder* getInstance();

        World* loadLevel(std::string);
        bool startsWith(std::string, std::string);
        bool isNumber(std::string);
};

#endif // LEVELBUILDER_H
